package com.yy.personalcv.tool;

import cn.hutool.crypto.digest.MD5;

import java.util.Collection;
import java.util.Map;

public class StringUtils {

    /*
    * 单例设计模式：保证内存中只有一个对象
    * 1. 私有化它的构造函数
    * 2. 创建一个私有的静态变量
    * 3. 提供一个公共的静态方法，返回这个静态变量
    */
    private static StringUtils instance = new StringUtils();

    private StringUtils() {
    }

    public static StringUtils getInstance() {
        return instance;
    }

    public String getMD5(String str) {
        return MD5.create().digestHex16(str);
    }

    public boolean isNullOrEmpty(Object obj) {
        //说实话，网上抄的
        if (obj == null)
            return true;

        if (obj instanceof CharSequence)
            return ((CharSequence) obj).length() == 0;

        if (obj instanceof Collection)
            return ((Collection) obj).isEmpty();

        if (obj instanceof Map)
            return ((Map) obj).isEmpty();

        if (obj instanceof Object[]) {
            Object[] object = (Object[]) obj;
            if (object.length == 0) {
                return true;
            }
            boolean empty = true;
            for (int i = 0; i < object.length; i++) {
                if (!isNullOrEmpty(object[i])) {
                    empty = false;
                    break;
                }
            }
            return empty;
        }
        return false;
    }
}
